package cn.com.nes.site.service.workOrder.dto;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @author yueb
 * @date 2019-08-09 14:41
 */
@Data
@NoArgsConstructor
public class QueryPatrolPlanEquipmentRecordDto {

    @JSONField(serialize = false, deserialize = false)
    private String no;//序号

    /**
     * 计划id
     */
    private String patrolPlanId;
    /**
     * id(新增)
     */
    private Long id;
    /**
     * 姓名
     */
    private String name;
    /**
     * 电话
     */
    private String phone;
    /**
     * 地址
     */
    private String address;
    /**
     * 设备生产公司名称
     */
    private String equipmentCompany;
    /**
     * 行政区划代码
     */
    private String xzqhdm;
    /**
     * 行政区划名称
     */
    private String xzqhmc;
    /**
     * 设备id
     */
    private String sbId;
    /**
     * 类型
     */
    private String classes;
    /**
     * 设备型号
     */
    private String model;
    /**
     * 设备厂家
     */
    private String equipmentCompanyName;
    /**
     * 任务id
     */
    private String taskId;
    /**
     * 经度
     */
    private Double longitude;
    /**
     * 纬度
     */
    private Double latitude;
    /**
     * 状态
     */
    private Integer status;

    /**
     * 结果
     */
    private Integer result;

    /**
     * 状态名
     */
    private String statusName;

    /**
     * 安装日期
     */
    @JSONField(format = "yyyy-MM-dd")
    private Date houseInstallTime;

    /**
     * 巡检人
     */
    private String patrolPersonnel;

    /**
     * 计划结束时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 巡检时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date patrolTime;

    private Double km;

    /**
     * 用户签字图片
     */
    private String sign_image;

    /**
     * 是否已超期
     */
    private Integer isOverTime;

    public void setStatusName(Integer status) {
        switch (status) {
            case 0 :
                this.statusName = "待检查";
                break;
            case 1:
                this.statusName = "待用户确认 ";
                break;
            case 2 :
                this.statusName = "检查失败";
                break;
            case 3:
                this.statusName = "待审核";
                break;
            case 4 :
                this.statusName = "用户拒签";
                break;
            case 5:
                this.statusName = "巡检完成 ";
                break;
            case 6 :
                this.statusName = "审核失败";
                break;
            case 7:
                this.statusName = "巡检失败";
                break;
            case 8:
                this.statusName = "审核通过";
                break;
            default:
        }
    }

    /**
     * 检查记录
     */
    private String resultDesc;

    private Integer damageLevel;

    private String damageLevelName;

    private String warrantyExpiryDate;

    private String abbreviation;

}
